/*================================================================
*   Copyright (C) 2019 Guangzhou Firefly Ltd. All rights reserved.
*   
*   文件名称：yanghui_triangle.c
*   创 建 者：luhuadong
*   创建日期：2019年10月14日
*   描    述：求第 n 行第一个偶数出现的位置。
*             如果没有偶数，则输出 -1。
*
*                    1
*
*                 1  1  1
*
*              1  2  3  2  1
*
*           1  3  6  7  6  3  1
*
*        1  4  10 16 19 16 10 4  1
*
*     1  5  15 30 45 51 45 30 15 5  1
*
================================================================*/


#include <stdio.h>


int get_even_position(const unsigned int row)
{
	/* 前两行没有偶数 */
	if(row < 3)
		return -1;

	/* 奇数行的第二个是偶数 */
	if(row % 2) 
		return 2;

	/* 其他 */
	if(row % 4 == 0)
		return 3;

	if(row % 4 == 2)
		return 4;

	return -1;
}


int main(void)
{

	unsigned int row = 0;
	int pos = 0;

	printf("杨辉三角的变形，请问您想查询第几行：");
	scanf("%u", &row);

	if(row > 1000000000) {
	
		printf("超出范围！\n");
		return -1;
	}

	pos = get_even_position(row);
	
	if(pos < 0) {
	
		printf("第%u行没有偶数\n", row);
	}
	else {

		printf("第%u行第一个偶数出现的位置是：%d\n", row, pos);
	}

	return 0;
}
